package com.yik.countforcockpit.utils;

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class FormulaParserUtils {

    /**
     * 解析公式，提取参数个数和参数详情
     * @param formula 计算公式
     * @return 包含参数个数和参数详情的数组，索引 0 为参数个数，索引 1 为参数详情列表
     */
    public static Object[] parseFormula(String formula) {
        if (formula == null || formula.isEmpty()) {
            return new Object[]{0, new ArrayList<String>()};
        }
        // 正则表达式匹配参数
        Pattern pattern = Pattern.compile("[\\u4e00-\\u9fa5a-zA-Z0-9_%]+");
        Matcher matcher = pattern.matcher(formula);
        List<String> paramDetails = new ArrayList<>();
        while (matcher.find()) {
            String param = matcher.group().trim();
            if (!param.isEmpty()) {
                paramDetails.add(param);
            }
        }
        int paramCount = paramDetails.size();
        return new Object[]{paramCount, paramDetails};
    }
}